## Controller Python Script "salvar_atividade"
##bind container=container
##bind context=context
##bind namespace=
##bind script=script
##bind state=state
##bind subpath=traverse_subpath
##parameters=
##title=Salvar Atividade
##

request = context.REQUEST
resolucao = context.aq_parent
obj = resolucao.aq_parent

if obj.portal_type != 'EscritorioVirtualComite':
    #ata = resolucao.aq_parent
    data = DateTime(obj.start())

    prazo_pendencia = DateTime(context.getPrazo_pendencia_atividade())
    data_inicio = DateTime(context.start())
    data_fim = DateTime(context.getData_fim())
    data_conclusao = DateTime(context.getData_conclusao())

    if prazo_pendencia > data_inicio:
        state.setError('prazo_pendencia_atividade', 'Por favor corrija o prazo de pendência, pois está maior que o início da atividade.')

    if data_inicio < data:
        state.setError('data_inicio', 'Por favor corrija a data inicial da atividade, ela está menor que a data em que a reunião foi realizada. Que foi realizada no dia %s' % (data))

    if data_fim < data_inicio: 
        state.setError('data_fim', 'Por favor corrija a data final da atividade, ela está menor que a data início.')

    if data_conclusao != '':
        if data_conclusao <= data_inicio:
            state.setError('data_conclusao', 'Por favor corrija a data de conclusão da atividade, ela está menor que a data de início.')

    if state.getErrors():
        return state.set(status='failure', portal_status_message='Por favor corrija os erros indicados.')

    else:
        return state.set(portal_status_message='Os dados da atividade foram salvos.')
else:
    data_inicio = DateTime(context.start())
    data_fim = DateTime(context.getData_fim())
    data_conclusao = DateTime(context.getData_conclusao())

    if data_fim <= data_inicio: 
        state.setError('data_fim', 'Por favor corrija a data final da atividade, ela está menor que a data início.')

    if data_conclusao != '':
        if data_conclusao <= data_inicio:
            state.setError('data_conclusao', 'Por favor corrija a data de conclusão da atividade, ela está menor que a data de início.')

    if state.getErrors():
        return state.set(status='failure', portal_status_message='Por favor corrija os erros indicados.')

    else:
        return state.set(portal_status_message='Os dados da atividade foram salvos.')
